package uba.algo3.tp2.ej1;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.StringTokenizer;

import org.junit.Test;

public class MaximoTest {

	ArrayList<String> vecindades;
	Maximo e = new Maximo();
	
	@Test
	public void testObtenerMaximo()
	{		
		
		representData("Richmond Sidney 3; Richmond Penrith 2; Sidney Penrith 1;");
		e = new Maximo();
		int pesoMaximo = e.obtenerMaximo("Penrith", "Sidney", vecindades); 
		assertEquals(2,pesoMaximo);
		
		representData("Kingaroy Caboolture 4; Caboolture Brisbane 3; Kingaroy Dalby 3; Dalby Brisbane 5;");
		e = new Maximo();
		pesoMaximo = e.obtenerMaximo("Kingaroy", "Brisbane", vecindades); 
		assertEquals(3,pesoMaximo);
		
		representData("Hamilton Ballarat 4; Hamilton Warmambool 7; Frankston Geelong 6; Ballarat Melbourne 5; Ballarat Geelong 5; Melbourne Frankston 7;");
		e = new Maximo();
		pesoMaximo = e.obtenerMaximo("Hamilton", "Melbourne", vecindades); 
		assertEquals(4,pesoMaximo);
		
		representData("Geelong Penrith 1; Sidney Penrith 2; Sidney Dalby 2; Dalby Penrith 2; Dalby Geelong 1;");
		e = new Maximo();
		pesoMaximo = e.obtenerMaximo("Sidney", "Geelong", vecindades); 
		assertEquals(1,pesoMaximo);
		
		representData("Sidney Geelong 3; Sidney Melbourne 2; Sidney Ballarat 3; Ballarat Penrith 2; Geelong Penrith 1; Geelong Melbourne 3; Geelong Ballarat 4; Melbourne Penrith 3;");
		e = new Maximo();
		pesoMaximo = e.obtenerMaximo("Sidney", "Penrith", vecindades); 
		assertEquals(3,pesoMaximo);
		
		representData("Zaraza Penrith 2; Zaraza Sidney 18; Sidney Geelong 3; Sidney Melbourne 2; Sidney Ballarat 3; Ballarat Penrith 2; Geelong Penrith 1; Geelong Melbourne 3; Geelong Ballarat 4; Melbourne Penrith 3;");
		e = new Maximo();
		pesoMaximo = e.obtenerMaximo("Sidney", "Zaraza", vecindades); 
		assertEquals(18,pesoMaximo);
		
}
	
	private void representData(String string)
	{
		 vecindades = new ArrayList<String>();
		
		StringTokenizer st = new StringTokenizer(string, ";");

		while(st.hasMoreTokens())
		{
			StringTokenizer s = new StringTokenizer(st.nextToken()," ");
			vecindades.add(s.nextToken());
			vecindades.add(s.nextToken());
			vecindades.add(s.nextToken());
		}
		
		
	}
	
}
